package mobi.richaze.llbag.domain.model.order;

import java.io.Serializable;
import java.math.BigDecimal;

import mobi.richaze.llbag.domain.model.cart.CartItem;
import mobi.richaze.llbag.domain.model.product.Item;

/**
 * 订单的每一项的详细信息，包括产品名称和数量，价格等
 * 
 * @author Administrator
 * 
 */
@SuppressWarnings("serial")
public class LineItem implements Serializable {

	private int orderId;
	private int lineNumber;
	private int quantity;
	private String itemId;
	private BigDecimal unitPrice;
	private Item item;
	private BigDecimal total;

	public LineItem() {
	}

	public LineItem(int lineNumber, CartItem cartItem) {
		this.lineNumber = lineNumber;
		this.quantity = cartItem.getQuantity();
		this.itemId = cartItem.getItem().getItemId();
		this.unitPrice = cartItem.getItem().getListPrice();
		this.item = cartItem.getItem();
	}

	public int getOrderId() {
		return orderId;
	}

	public void setOrderId(int orderId) {
		this.orderId = orderId;
	}

	public int getLineNumber() {
		return lineNumber;
	}

	public void setLineNumber(int lineNumber) {
		this.lineNumber = lineNumber;
	}

	public String getItemId() {
		return itemId;
	}

	public void setItemId(String itemId) {
		this.itemId = itemId;
	}

	public BigDecimal getUnitPrice() {
		return unitPrice;
	}

	public void setUnitPrice(BigDecimal unitprice) {
		this.unitPrice = unitprice;
	}

	public BigDecimal getTotal() {
		return total;
	}

	public Item getItem() {
		return item;
	}

	public void setItem(Item item) {
		this.item = item;
		calculateTotal();
	}

	public int getQuantity() {
		return quantity;
	}

	public void setQuantity(int quantity) {
		this.quantity = quantity;
		calculateTotal();
	}

	private void calculateTotal() {
		if (item != null && item.getListPrice() != null) {
			total = item.getListPrice().multiply(new BigDecimal(quantity));
		} else {
			total = null;
		}
	}

}
